import java.util.Arrays;
import java.util.Random;

public class Test {

    //逆序数组
    public static void readyDataOrder(int[] array){
        for(int i=0;i<array.length;i++){
            array[i]=array.length-i;
        }
    }

    //非逆序数组
    public static void readyDataNotOrder(int[] array){
        Random random=new Random();
        for(int i=0;i<array.length;i++){
            array[i]=random.nextInt(10_0000);//范围为十万
        }
    }
    public static void insertSortTest(int[] array){
        //array= Arrays.copyOf(array,array.length);是为了让array作为形参传入方法内，不修改其内部的值
        array= Arrays.copyOf(array,array.length);
        long start=System.currentTimeMillis();
        Sort.insertSort(array);
        long end = System.currentTimeMillis();
        System.out.println("直接插入排序参考运行时间:"+(end-start));
    }
    public static void shellSortTest(int[] array){
        array= Arrays.copyOf(array,array.length);
        long start=System.currentTimeMillis();
        Sort.shellSort(array);
        long end = System.currentTimeMillis();
        System.out.println("希尔排序参考运行时间:"+(end-start));
    }

    public static void main(String[] args) {
        int[] array=new int[10_0000];
        //readyDataOrder(array);
        readyDataNotOrder(array);

        Test.insertSortTest(array);

        Test.shellSortTest(array);
    }
}